async函数可以写返回值吗,如果使用async函数封装node自带的模块是不是一定要经过promise - CNode技术社区

async函数可以写返回值吗,如果使用async函数封装node自带的模块是不是一定要经过promise
发布于 9 年前 作者 without-yy 4273 次浏览 来自 问答
const fs = require('fs');
const path = require('path');
function promiseReadFile(path) {
 return new Promise((resolve,reject)=>{
 fs.readFile(path,(err,res)=>{
 if (err){
 reject(err);
 return;
 }
 resolve(res);
 });
 });
}
async function asyncReadFile(path) { //我想在这个函数中直接return res怎么做到
 let res = await promiseReadFile(path);
 console.log(res.toString());
 return res;
}
asyncReadFile(path.resolve(__dirname,'./data/1.txt')); //这样运行是可以的
// let res = asyncReadFile(path.resolve(__dirname,'./data/1.txt')); //我想把函数的返回值赋给res 打印结果是 [object Promise]
// console.log(res);
//求赐教!!!!!!!!!
const fs = require('fs');
const path = require('path');
function promiseReadFile(path) {
 return new Promise((resolve,reject)=>{
 fs.readFile(path,(err,res)=>{
 if (err){
 reject(err);
 return;
 }
 resolve(res);
 });
 });
}
(async function(){ //上面的代码多走了一步 直接在async中调用就好 想法有问题
 let res = await promiseReadFile(path.resolve(__dirname,'./data/1.txt'));
 console.log(res.toString());
})();
1 回复
回到顶部

AltStyle によって変換されたページ (->オリジナル) /