Promise then 方法返回值问题。

function double(value) {

    return value * 2;

}

function increment(value) {

  return new Promise(function(resolve, reject){

        resolve(value+9);

  })

}

function output(value) {

    console.log(value);// => (1 + 9) * 2

}


var promise = Promise.resolve(1);

promise

    .then(increment)

    .then(double)

    .then(output)

    .catch(function(error){

        console.error(error);

    });

    

定义: Promise then 返回一个新的 promise。
其实上 double方法 返回一个 int类型,increment 返回一个Promise对象
double 返回类型与定义不符合,这其中Promise做了什么?
是 return new Promise(function(resolve,reject){resolve(value*2)})?
那Promise 如何区别return int,string,Promise 做一个层封装?

繁花如伊
浏览 5659回答 1
1回答

吃鸡游戏

看看A+Promisethis.then = function (onFulfilled, onRejected) {  var self = this;  return new Promise(function (resolve, reject) {    return self.done(function (result) {      if (typeof onFulfilled === 'function') {        try {          return resolve(onFulfilled(result));        } catch (ex) {          return reject(ex);        }      } else {        return resolve(result);      }    }, function (error) {      if (typeof onRejected === 'function') {        try {          return resolve(onRejected(error));        } catch (ex) {          return reject(ex);        }      } else {        return reject(error);      }    });  });}then方法的实现里,确实是返回了一个新的Promise,你说的double,其实是then的第一个参数onFulfilled
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript