Promise对象和回调函数,解决异步数据传递问题

下面的代码例子,均已小程序的异步请求数据为案例来说明

1.利用回调函数,来解决异步数据传递问题

 1 异步操作api.js
 2 const getBooks = (url, callback) => {
 3   wx.request({
 4     url: url,
 5     method: ‘GET‘,
 6     header: {
 7        "Content-Type": "json"
 8     },
 9     success: function (res) {
10        console.log(res)
11        callback(res)
12     }
13   })
14 }
15 module.exports = {
16      getBooks: getBooks
17 }
18
19 引入api.js
20
21 api.getBooks(‘参数‘,回调函数)
22
23 写法一:
24 api.getBooks(‘https://api.douban.com/v2/movie/search?tag=%E5%96%9C%E5%89%A7&count=4‘, res => {
25      console.log(res)
26 })
27
28 写法二:
29
30 let x = () => {console.log(res)}
31 api.getBooks(‘参数‘, x)

2.利用Promise来解决异步回调数据传递的问题

异步操作api.js
const getBooks = (url) => {
  return new Promise((resolve,reject) => {
    wx.request({
      url: url,
      method: ‘GET‘,
      header: {
         "Content-Type": "json"
      },
      success: function (res) {
         resolve(res)
      }
    })
  })
}
module.exports = {
     getBooks: getBooks
}

引入api.js

api.getBooks(‘https://api.douban.com/v2/movie/search?tag=%E5%96%9C%E5%89%A7&count=4‘).then(res => {
     console.log(res)
})

以上两种方法均可以解决异步操作中数据传递的问题,也是比较简单,比较实用的两种方法

时间: 2024-10-12 04:49:26

Promise对象和回调函数,解决异步数据传递问题的相关文章

关于多个Promise对象及then()函数的执行顺序的研究记录

今天终于想要研究一下多个 Promise 对象的执行顺序问题了,在研究完后记录一下. 我想研究的是以下问题: 1.多个 Promise 对象及其then函数的执行顺序,这里不研究处于不同状态的 Promise 对象的执行顺序 2.在 Promise 中的定时器延时问题(这个问题其实在 MDN 和阮一峰老师的 ES6 入门中都讲过,只是我光看文字有点晕,所以自己写代码来理解) 废话不多说,先上代码吧 // 延时执行 new Promise(resolve => setTimeout(() =>

ArcGIS API for JavaScript 4.2学习笔记[7] 鹰眼(缩略图的实现及异步处理、Promise、回调函数、监听的笔记)

文前说明:关于style就是页面的css暂时不做评论,因为官方给的例子的样式实在太简单了,照抄阅读即可. 这篇文章有着大量AJS 4.x版本添加的内容,如监听watch.Promise对象.回调函数.异步处理等内容,原理性的东西我会在文末解释,各位看官不用担心看不懂,我尽量用通俗的语言解释这些. 惯例,如果不习惯从头看到尾,可以直接跳到后面看总结. 大家应该看过商业地图的缩略图功能吧?以度娘地图为例,在使用街景地图的时候,左下角会出现一个地点一样的2D小地图: 这个就是鹰眼功能的应用,在很多桌面

JavaScript 初识Promise 对象

什么是Promise? 其实, Promise就是一个类,而且这个类已经成为ES6的标准,是 ECMAScript 6 规范的重要特性之一.这个类目前在chrome32.Opera19.Firefox29以上的版本都已经支持了,要想在所有浏览器上都用上的话就看看es6-promise吧. ES6 的 Promises 是采用了 Promises/A+ 提案的一种实现.你现在能够找到的各种第三方实现,如果是完全兼容了 Promises/A+ 的,那么就和 ES6 的 Promises 是一致的(当

ES6深入学习记录(二)promise对象相关

1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和强大.ES6将其写进了语言标准,统一了用法,原生提供了promise对象. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步的操作)的结果.从语法上说,Pormise是一个对象,从它可以获取异步操作的消息.Promise提供统一的API.各种异步操作都可以用同样的方法进行处理. Promise对象的两个特点: 1.对象的状态不受外界影响.Promis

Promise对象详解

Promise对象概述(什么是Promise) Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息.Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理 有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数.此外,Promis

ES6中新增的promise对象

所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理. Promise 对象有以下两个特点. (1)对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和 Rejected(已失败).只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态.这也是 Promise 这

ES6学习笔记--promise对象

Promise是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理和更强大.它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象. Promise对象有以下两个特点. (1)对象的状态不受外界影响.Promise对象代表一个异步操作,有三种状态:Pending(进行中).Resolved(已完成,又称 Fulfilled)和Rejected(已失败).只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态.这也是Promi

ES6中Promise对象个人理解

Promise是ES6原生提供的一个用来传递异步消息的对象.它减少了传统ajax金字塔回调,可以将异步操作以同步操作的流程表达出来使得代码维护和可读性方面好很多. Promise的状态: 既然是用来传递异步消息的那肯定就会有异步消息的状态:所以promise提供了3种状态:pending(进行中),resolved(已完成或者称 fulfilled),rejected(失败).不同的是Promise不会受外界影响,只有异步操作结果才能决定当前是哪种状态,任何其他非异步操作都不能改变.所以当状态发

ES6学习之Promise对象

1.什么是Promise对象? Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.原生提供了Promise 对象.Promise 简单说就是一个容器,里面保存着之后才执行的事件.从语法层面来说,Promise 是一个对象,从它可以获取异步操作的消息.Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理. 2.Promise对象的特点 (1)首先Promise对象的状态不受外界影响.其次promise对象代表一个异步操作,有三种状