鍍金池/ 問(wèn)答/HTML/ promise為什么可以這么寫?

promise為什么可以這么寫?

今天在看別人的博客發(fā)現(xiàn)了Promise的這樣的寫法:

Promise.resolve(1).then(function(data){
    console.log(data);
});

我平時(shí)寫的時(shí)候都是用了new:

new Promise();

請(qǐng)問(wèn)這樣寫區(qū)別是什么。為什么可以這么寫?
前端小白,各位大神指點(diǎn)下。謝謝了。
我需要惡補(bǔ)哪些方面的知識(shí)?

回答
編輯回答
解夏

Promise 作為一個(gè)對(duì)象,具有 resolve 這個(gè)方法也正常啊。。。
感覺(jué)題主這個(gè)用例只是為了得到一個(gè)可以 then 的函數(shù)式的對(duì)象而已:

Premise.resolve(1)
    .then(anotherPromise)
    .then(andAnother)
    .then()

本人當(dāng)初也翻譯過(guò):使用 ES2017 Async 函數(shù),從回調(diào)地獄到 promiseasync/await。當(dāng)然中間還差了個(gè) Generator,這個(gè)去看阮一峰的連載文就行了:
Generator函數(shù)的含義與用法
Thunk函數(shù)的含義與用法
co函數(shù)庫(kù)的含義與用法
async函數(shù)的含義與用法

2018年3月13日 20:19
編輯回答
夏木

Promise.resolve(data)就相當(dāng)于平時(shí)寫的new Promise((resolve, reject) => { resolve(data) })。兩者是同樣作用的,你可以去看看阮一峰老師的ES6教程,同時(shí)還有async,await的用法,也是為了解決異步回調(diào)地獄的問(wèn)題。

2017年10月3日 19:00
編輯回答
放開(kāi)她

是一樣的,都是返回Promise對(duì)象

2017年11月20日 03:02
編輯回答
舊螢火
Promise.resolve(xx)

等價(jià)于

new Promise((resolve)=>{resolve(xx)})
2017年11月14日 07:48