求教 has no method 'start' 的错误是啥问题

20 views
Skip to first unread message

周尉

unread,
Jul 30, 2012, 6:02:20 AM7/30/12
to js...@googlegroups.com

求教哪里出错了


require('../lib/jscex.mysql').jscexify(db);
var testAsync = eval(Jscex.compile("async",function(){
    sql = 'select * from '+opt.db_name+'.'+tb_name+' limit 10';
    var ret = $await(db.queryAsync(sql));
}))

testAsync.start();

报错内容如下



node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
TypeError: Object function () {
                                                                         var _builder_$0 = Jscex.builders["async"];
                                                                         return _builder_$0.Start(this,
                                                                             _builder_$0.Delay(function () {
/*     sql = "select * from " + opt.db_name + "." + tb_name + " limit 10"; */    sql = "select * from " + opt.db_name + "." + tb_name + " limit 10";
/*     var ret = $await(db.queryAsync(sql)); */                                  return _builder_$0.Bind(db.queryAsync(sql), function (ret) {
                                                                                     return _builder_$0.Normal();
                                                                                 });
                                                                             })
                                                                         );
/* } */                                                              } has no method 'start'
    at Object. (/Users/chatfeed/webroot/SGRPG/ServerCode/server/nodejs/logic/test.js:50:11)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)


Jeffrey Zhao

unread,
Jul 30, 2012, 10:36:31 AM7/30/12
to js...@googlegroups.com
没有看出明显问题,不知道你的jscex.mysql是怎么写的呢?
 
--
 
 
 

周尉

unread,
Jul 30, 2012, 9:37:39 PM7/30/12
to js...@googlegroups.com

我用的是todo那个例子的


var Jscex = require("./jscex/jscex").Jscex; exports.jscexify = function (db) { db.queryAsync = function () { var _this = this; var args = []; for (var i = 0; i < arguments.length; i++) { args.push(arguments[i]); } var delegate = { onStart: function (callback) { args.push(function (err, result) { if (err) { callback("failure", err); } else { callback("success", result); } }); _this.query.apply(_this, args); } }; return new Jscex.Async.Task(delegate); } }

Jeffrey Zhao

unread,
Jul 30, 2012, 10:15:10 PM7/30/12
to js...@googlegroups.com
todo是五百年前的示例了,当时的Jscex还没大举发布,用法不同。
 
现在建议看下文档里的fromCallback和fromStandard方法。
 
--
 
 
 

Rainbow_sh

unread,
Sep 21, 2012, 11:51:22 AM9/21/12
to win...@googlegroups.com, js...@googlegroups.com
testAsync.start();
这句错了。

应该是:testAsync().start();

Reply all
Reply to author
Forward
0 new messages