node.js如何顺序执行方法?

RT.我写了三个读写文件的方法,如下所示:

 fs.writeFile(filedir, field, function (err) {
                if (err) {
                  console.log(err);
                } else {
                  console.log('file done!');
                }
              });

fs.appendFile(filedir, , function (err) {
                if (err) {
                  console.log(err);
                } else {
                  console.log('catalog done!');
                }
              });

              //读取上一份数据
fs.readFile(fieldir, 'utf8', (err, data) => {
                ....

现在是这样的,我每次先存一份数据在一个新文件内,然后维护一个目录文件,再从目录文件里取出那个对应文件的文件名,读取这个存入的文件。问题是,每次都是文件还没存入,读取就已经完成了,导致总是读错文件。有没有办法让read这个地方晚执行,或者其他方法让三个方法顺序执行?保证先存,再读。

阅读 3.9k
4 个回答

学习一下回调函数这个概念吧。。

Async waterfall

异步async ,promise链式调用也行

可以采用Promise链式调用,将存函数封装成一个Promise函数,在其执行成功的resolve中,再执行读取内容函数。可参考我这个项目里的代码进行封装https://github.com/guangying1...,里面的upload上传函数就是在文件内容必须读取后,然后再执行发送函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题