为了账号安全,请及时绑定邮箱和手机立即绑定

vue-cli生成的webpack配置中一段代码解惑:dev-server.js有段关于

vue-cli生成的webpack配置中一段代码解惑:dev-server.js有段关于

RISEBY 2019-01-31 23:23:13
在dev-server.js中有段关于promise的代码如下:var _resolvevar readyPromise = new Promise(resolve => {  _resolve = resolve})console.log('> Starting dev server...')devMiddleware.waitUntilValid(() => {  console.log('> Listening at ' + uri + '\n')  // when env is testing, don't need open it  if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {    opn(uri)  }  _resolve()})var server = app.listen(port)module.exports = {  ready: readyPromise,  close: () => {    server.close()  }}为什么要加这个啊?
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

加上完整的上下文:


var _resolve

var readyPromise = new Promise(resolve => {

  _resolve = resolve

})


console.log('> Starting dev server...')

devMiddleware.waitUntilValid(() => {

  console.log('> Listening at ' + uri + '\n')

  // when env is testing, don't need open it

  if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {

    opn(uri)

  }

  _resolve()

})


var server = app.listen(port)


module.exports = {

  ready: readyPromise,

  close: () => {

    server.close()

  }

}

源码里面是把 resolve 方法写在外面了,其实和写在里面是一样的:


var readyPromise = new Promise(resolve => {

  console.log('> Starting dev server...')

  devMiddleware.waitUntilValid(() => {

    console.log('> Listening at ' + uri + '\n')

    // when env is testing, don't need open it

    if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {

      opn(uri)

    }

    resolve()

  })

})

这样是不是就好理解一些了呢?


查看完整回答
反对 回复 2019-02-01
  • 1 回答
  • 0 关注
  • 501 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信