在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 用promise進(jìn)行異步流程控制,已經(jīng)使用then控制異步了 為什么還是報(bào)沒(méi)有找

用promise進(jìn)行異步流程控制,已經(jīng)使用then控制異步了 為什么還是報(bào)沒(méi)有找到文件的錯(cuò)誤?

(node:2420) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open 'C:UsersxyhDesktopnodejstestreadbc.txt'


const fs = require('fs');
new Promise(function(resolve, reject) {
    fs.mkdir('./read', (err) => {
        if (err) {
            reject(err);
        } else {
            resolve();
        }
    })
}).then(function() {
        new Promise(function(resolve, reject) {
                fs.writeFile('./read/c.txt', 'hello', (err) => {
                    if (err) {
                        reject(err);
                    } else {
                        resolve();
                    }
                })
        })
    }).then(function() {
        new Promise(function(resolve,reject){
            fs.mkdir('./read/b',(err)=>{
                if(err){
                    reject(err);
                }else{
                    resolve();
                }
            })
        })
    }).then(function(){
        new Promise(function(resolve,reject){
            fs.writeFile('./read/b/c.txt','node',(err)=>{
                if(err){
                    reject(err);
                }else{
                    resolve();
                }
            })
        })
    }).then(function(){
        new Promise(function(resolve,reject){
            fs.readdir('./read',(err,files)=>{
                if(err){
                    reject(err);
                }else{
                    resolve(files);
                }
            })
        })
    }).then(function(result){
        console.log(result)
    })
回答
編輯回答
歆久

.then() 里面返回的值會(huì)經(jīng)由 Promise.resovle 處理,然后決定其行為。

所以你每次都只是創(chuàng)建了 Promise 實(shí)例,但并沒(méi)有返回給 Promise 處理,相當(dāng)于直接執(zhí)行下一個(gè) .then(),不等待 Promise 的狀態(tài)改變。

所以你需要在 .then() 里面改成:return new Promise(....) 這樣。

關(guān)于 Promise 我之前做過(guò)一次講堂,講得非常詳細(xì),推薦你看下:Promise 的 N 種用法。

2017年1月12日 10:27
編輯回答
敢試

在then里面需要把new的Promise return一下

2018年8月5日 21:24