1、当用this.assign('data',data); 变量输出时碰到转义的问题。平常习惯用=输出变量,今天发觉是转义的,查了下资料。变量输出有以下三个方式。
转义输出 <%= data.name%>
不转义输出 <%- data.name%>
转义输出 <%= data.name%>
不转义输出 <%- data.name%>
注释 <%# data.name%>
2、think.promisify(fn, receiver)
fn
{Function} 要转化的函数receiver
{Object} this指向
将异步方法快速包装成 Promise,异步方法必须符合最后一个参数为回调函数,且回调函数的第一个参数为 err
的原则。
var fs = require("fs");
//获取文件内容
var getContent = function(filePath){
//将readFile方法包装成Promise
var readFilePromise = think.promisify(fs.readFile, fs);
//读取文件内容
return readFilePromise(filePath, "utf8");
}
//获取具体的文件内容
getContent("/foo/bar/file.txt").then(function(content){
console.log(content);
}).catch(function(err){
console.error(err.stack);
})
3、thinkjs对多个异步的同步处理
let dataarray=[];
for (var i =1;i<16;i++){
//15个异步操作
dataarray[i]= dosomething...;例如login()
}
let datashuzu = await Promise.all(dataarray);//等待所有数据返回
let login = ( username1) => {
let fn = think.promisify(request.post);
return fn({url:'http://www.xxxx.com/Login/submit.html', form: {username:username1,password:'aaaaaa'}});
}
4、调用并转到admin/login这个action的方法
return this.controller('admin/login','login');