Promise.resolve有什么用处?

国家战略忽悠局
  • 380

Promise.resolve()

有时需要将现有对象转为 Promise 对象,Promise.resolve()方法就起到这个作用。

如题,什么情况下需要将现有对象转换成Promise对象?谢谢!

回复
阅读 1.6k
4 个回答
✓ 已被采纳

当你的数据不是promise实例,或者你不知道他是不是promise,而你又想把他当做promise实例来使用的时候

比如如果本地有数据data返回data,没有则请求

Promise.resolve(data ? data : getData()).then(...)

这是个语法糖吧


var foo = {
    then: (resolve, reject) => resolve('foo')
};
var resolved = Promise.resolve(foo);
相当于
var resolved = new Promise((resolve, reject) => {
    foo.then(resolve, reject)
});

resolved.then((str) => 
    console.log(str);//foo
)

跟楼上的差不多,不过我喜欢这么用:

// 如果本地有数据就不请求,没有就请求
const p = data ? Promise.resolve(data) : getData();
p
  .then(result => {
    // 数据处理
  });

用来创建微任务,更新视图的时候非常有用

Promise.resolve().then(() => console.log('456'));
console.log('123');
你知道吗?

宣传栏