一、从git clone后用vscode打开项目,执行npm run start时报错

gulp[10500]: c:\ws\src\node_contextify.cc:635: Assertion `args[1]->IsString()' failed.
 1: 00007FF7106AD1BA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4506
 2: 00007FF710687F96 node::MakeCallback+4534
 3: 00007FF71068804F node::MakeCallback+4719
 4: 00007FF71065C460 node::DecodeWrite+13120
 5: 00007FF710BB5212 std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+79442
 6: 00007FF710BB6379 std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+83897
 7: 00007FF710BB56BC std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+80636
 8: 00007FF710BB55DB std::vector<v8::internal::compiler::MoveOperands * __ptr64,v8::internal::ZoneAllocator<v8::internal::compiler::MoveOperands * __ptr64> >::_Umove+80411
 9: 000000EB7B65C5C1
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! ESettle@1.0.0 start: `gulp default`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the ESettle@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\zhanxl\AppData\Roaming\npm-cache\_logs\2019-10-14T01_09_23_529Z-debug.log

原因:由node早于10版本开发的项目升级到了10以上的版本 执行gulp,node 10 版本都会出现这个问题
解决方法:安装node.js的原生javascript模块 natives 可以解决
命令:npm install natives

二、$timeout
angularjs的$timeout是对window.setTimeout做了一个封装,他返回一个promise对象,当定义的时间到了之后,这个promise对象会被resolve,回调函数会被执行,如果要取消的话,执行$timeout.cancel(promise)方法。
$timeout(fn,[delay],[invokeApply]):
fn(必填):回调函数
delay(选填):number类型.延迟时间,如果不填,表示当线程空下来之后执行,比如当页面渲染完成
invokeApply(选填):boolean类型.是否需要进行脏值检测(非必填),不填默认为false,如果设置为true,则fn回调会被包在$scope.$apply()中执行


Halo
5 声望1 粉丝

多读书多思考保持灵性按时睡觉